package com.psychologyCommunity.Community.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;

//配置类先打上注解
@Configuration
public class RedisConfig {
    //我们利用redisTemplate访问 数据库，要想template具备访问数据库的能力，他得能够创建连接，需要把连接工厂创建进来
    @Bean
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
        //实例化bean
        RedisTemplate<String,Object> template=new RedisTemplate<>();
        //把工厂设置给template
        template.setConnectionFactory(factory);

        //我们得到的是java类型的数据 要存入redis
        //设置key的 序列化方式
        template.setKeySerializer(RedisSerializer.string());
        //设置value的 序列化方式 序列化成JSON格式，因为JSON格式 是结构化的
        template.setValueSerializer(RedisSerializer.json());
        //设置hash的 key的 序列化方式
        template.setHashKeySerializer(RedisSerializer.string());
        //设置hash的value的 序列化方式
        template.setHashValueSerializer(RedisSerializer.json());

        //设置完之后 要触发一下 使他生效
        template.afterPropertiesSet();
        return template;

    }
}
